草庐IT

<五>function的实现原理

全部标签

javascript - JavaScript 中纤程的客户端实现。

AFAIKmeteorjs使用node-fibers,但他们的github页面声明它只是服务器端和v8(或者不是?)。meteorjs如何实现非阻塞的,类似同步的api客户端?是否兼容除chrome以外的其他浏览器?如果有人能指出纤程的纯JS实现,或者解释它们是如何工作的(它们有自己的事件循环吗?),我将不胜感激。任何指向工作客户端光纤实现的github项目的链接也将受到赞赏!毕竟是圣诞节:) 最佳答案 node-fibers项目是Node.js的Windows-only服务器端扩展,用C++实现。您可能永远不会在Web浏览器中看到

javascript - 使用 CSP 在 Web Worker 中启用 'new Function'

我无法让newFunction在WebWorker中工作。我有一个生成WebWorker的HTML页面。这个WebWorker通过newFunction(str)执行代码。我正在尝试在打包的Chrome应用程序中使用它,这需要使用eval类代码的页面在list中明确列为沙盒页面。现在,有两个选择:Do列出要沙盒化的页面。如果这样做,我可以使用newFunction,但我无法生成WebWorker,因为我无法发出任何请求(沙盒页面具有唯一来源)。newWorker(...)抛出一个SECURITY_ERR。newFunction在沙箱中工作newWorker由于唯一来源而在沙箱中失败不要

javascript - 使用 Javascript 上传文件返回 'Access Denied' 错误与程式化 <输入类型 ='file'> 到按钮

我使用以下方法对我的文件输入进行了风格化:#yourBtn{position:relative;top:150px;font-family:calibri;width:150px;padding:10px;border-radius:5px;border:1pxdashed#ddeeff;text-align:center;background-color:#ffddee;cursor:pointer;color:#333333;}functiongetFile(){document.getElementById("upfile").click();}functionsub(obj){

javascript - 为什么 prototyping Function 不影响 console.log?

我制作了Function原型(prototype),使其具有getBody函数:Function.prototype.getBody=function(){//Getcontentbetweenfirst{andlast}varm=this.toString().match(/\{([\s\S]*)\}/m)[1];//Stripcommentsreturnm.replace(/^\s*\/\/.*$/mg,'');};参见here获取更多信息。我试过这样测试:console.log(console.log.getBody.getBody());但收到错误:TypeError:cons

javascript - 以现代方式获取 <select> 的值(value)?

我是undertheimpression为了从中获取值你基本上必须这样做:varsel=document.getElementById("my-select");varval=sel.options[sel.selectedIndex].value;但是我ranintosomecodetoday这就是document.getElementById('my-select').value,这似乎在Chrome和Firefox中运行良好。最近有变化吗,还是一直这样?这支持多远? 最佳答案 mySelect.value至少从1998年10月

javascript - Node : Passing function specific variables to Async. 并行()

在Node中呈现页面之前,我需要完成大量长时间运行的数据库查询。这些查询中的每一个都需要一些自己的变量。有没有一种简单的方法可以将变量传递给nodejs中的async.parallel()实用程序?async.parallel([queryX(callback,A1,A2,A3),queryX(callback,B1,B2,B3),queryY(callback,C1,C2,C3),queryY(callback,D1,D2,D3),queryZ(callback,E1,E2,E3),queryZ(callback,F1,F2,F3),],function(err,results){/

javascript - 如何为 rails 4.1 替换 link_to_function

我正在创建我的第一个真正的Rails应用程序,并且我正在学习。我有一种情况需要在一种形式上创建嵌套属性,因此一直在查看与此相关的railscast剧集(196和197)。在第二集中,他使用了link_to_function方法,显然在rails4.1中不再可用。我想知道如何更换它。我一直在尝试link_to,并为发布类似问题的其他人尝试了许多建议的解决方案,但无济于事。这是我的部分View目前的样子(虽然,我已经尝试了很多东西......)这是我的.js.coffee文件,其中包含remove_fields()函数:remove_fields=(link)->$(link).previ

javascript - Angular JS - “Error: [$interpolate:interr] Can' t 插值 :” from a working function

我的一个函数出现以下错误:Error:[$interpolate:interr]http://errors.angularjs.org/1.3.0-rc.4/$interpolate/interr?p0=%7B%7B%20crea…&p1=TypeError%3A%20Cannot%20read%20property%20'startDate'%20of%20undefinedatError(native)atfile:///C:/Users/Zuh/Desktop/MSF_Juba_2014/Radio%20Room%20App/angular.min.js:6:421atz.exp

javascript - 等效于 ES6 生成器的 Function.prototype.apply

我正在尝试构建可链接的JavaScriptAPI。(我在启用了迭代器和生成器的最新版本的V8中运行它。)在下面的示例中,setState是可链接的。它还允许您调用它而无需显式创建新的Builder实例。chain()辅助函数处理并自动返回该实例,因此setState不必担心它。(一流的功能为赢!)除了可链接的方法之外,我还需要一些“终止”方法。更重要的是,这些“终结者”是发电机。生成器生成Builder实例的内部状态。问题是我无法找出与生成器的f.apply(that,arguments)等效的方法。我希望能够在运行时调用生成器并设置其this上下文,就像您可以使用Function.p

javascript - 如何实现一个仅在需要时才修改原始模块的插件?

我有一个扩展原始模块的插件。它应该只在明确需要时修改模块。问题:一旦需要一次,原始模块就会永远被修改,对于插件不是依赖项的情况也是如此。这里的顺序无关紧要,只需要一次插件就足够了。例子:define("main",[],function(){return{opt:"A"};});define("plugin",["main"],function(obj){obj.opt="B";});require(["main","plugin"],function(obj){console.log(obj.opt);//shouldlogB});require(["main"],function(